<?php
use think\Route;
Route::get('doc','reflection\Documents@run');


// 应用公共文件
/*抓取网页图片/微信头像*/
function get_web_pic($url){
      $ch = curl_init();
      $path = __DIR__.'/../public/upload/member_header_img/';
      curl_setopt($ch, CURLOPT_URL, $url);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
      $file = curl_exec($ch);
      curl_close($ch);
      /*获取图片的名称 微信图片无效*/
      //$filename = pathinfo($url, PATHINFO_BASENAME);
      $filename = time().'.jpg';
      $resource = fopen($path.$filename, 'a');
      fwrite($resource, $file);
      fclose($resource);
      return '/upload/member_header_img/'.$filename;
}
function return_function($state = 0, $message = '', $data = array())
{
    $data = (object)$data;
    exit(json_encode(array('result' => "$state", 'info' => $message, 'data' => $data)));
}
/*curl请求全*/
function _curl($url,$type="POST",$body=[],$header=[]){
    //1.创建一个curl资源
    $ch = curl_init();
    //2.设置URL和相应的选项
    curl_setopt($ch,CURLOPT_URL,$url);//设置url
    //1)设置请求头
    //array_push($header, 'Accept:application/json');
    //array_push($header,'Content-Type:application/json');
    //array_push($header, 'http:multipart/form-data');
    //设置为false,只会获得响应的正文(true的话会连响应头一并获取到)
    curl_setopt($ch,CURLOPT_HEADER,0);
//      curl_setopt ( $ch, CURLOPT_TIMEOUT,5); // 设置超时限制防止死循环
    //设置发起连接前的等待时间，如果设置为0，则无限等待。
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,5);
    //将curl_exec()获取的信息以文件流的形式返回，而不是直接输出。
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    //2)设备请求体
    if (count($body)>0) {
        //$b=json_encode($body,true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $body);//全部数据使用HTTP协议中的"POST"操作来发送。
    }
    //设置请求头
    if(count($header)>0){
        curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
    }
    //上传文件相关设置
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_MAXREDIRS, 3);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);// 对认证证书来源的检查
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);// 从证书中检查SSL加密算
    
    //3)设置提交方式
    switch($type){
        case "GET":
            curl_setopt($ch,CURLOPT_HTTPGET,true);
            break;
        case "POST":
            curl_setopt($ch,CURLOPT_POST,true);
            break;
        case "PUT"://使用一个自定义的请求信息来代替"GET"或"HEAD"作为HTTP请求。这对于执行"DELETE" 或者其他更隐蔽的HTT
            curl_setopt($ch,CURLOPT_CUSTOMREQUEST,"PUT");
            break;
        case "DELETE":
            curl_setopt($ch,CURLOPT_CUSTOMREQUEST,"DELETE");
            break;
    }
    
    
    //4)在HTTP请求中包含一个"User-Agent: "头的字符串。-----必设

//      curl_setopt($ch, CURLOPT_USERAGENT, 'SSTS Browser/1.0');
//      curl_setopt($ch, CURLOPT_ENCODING, 'gzip');

    curl_setopt ( $ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)' ); // 模拟用户使用的浏览器
    //5)
    
    
    //3.抓取URL并把它传递给浏览器
    $res=curl_exec($ch);

    $result=json_decode($res,true);
    //4.关闭curl资源，并且释放系统资源
    curl_close($ch);
    if(empty($result))
        return $res;
    else
        return $result;

}